const axios = require('axios');

// 创建axios实例
const api = axios.create({
  baseURL: 'http://localhost:3002/api/demo',
  timeout: 10000,
  params: {
    userid: 1  // 使用测试用户ID 1绕过认证
  }
});

// 测试添加类别
async function testAddCategory() {
  try {
    console.log('尝试添加测试类别...');
    const response = await api.post('/additem', {
      typeIndex: 5,
      title: '测试类别',
      categoryType: '课程',
      userid: 1  // 在请求体中也添加userid
    });
    console.log('添加类别成功:', response.data);
    return response.data.data.id;
  } catch (error) {
    console.error('添加类别失败:', error.response?.data || error.message);
    return null;
  }
}

// 测试获取所有类别
async function testGetCategories() {
  try {
    console.log('获取所有课程类别...');
    const response = await api.get('/getallitems', {
      params: { typeIndex: 5, categoryType: '课程' }
    });
    console.log('获取类别成功，共有', response.data.data.length, '个类别');
    console.log('类别列表:', response.data.data);
    return response.data.data;
  } catch (error) {
    console.error('获取类别失败:', error.response?.data || error.message);
    return [];
  }
}

// 测试删除类别
async function testDeleteCategory(categoryId) {
  try {
    console.log(`尝试删除类别ID: ${categoryId}...`);
    const response = await api.delete('/deleteitem', {
      params: { typeIndex: 5, id: categoryId, userid: 1 }
    });
    console.log('删除类别成功:', response.data);
    return true;
  } catch (error) {
    console.error('删除类别失败:', error.response?.data || error.message);
    return false;
  }
}

// 运行测试
async function runTests() {
  console.log('开始测试类别功能...');
  
  // 先查看当前有哪些类别
  await testGetCategories();
  
  // 添加一个测试类别
  const categoryId = await testAddCategory();
  
  if (categoryId) {
    // 添加成功后再查看类别列表
    await testGetCategories();
    
    // 删除刚才添加的类别
    const deleteResult = await testDeleteCategory(categoryId);
    
    if (deleteResult) {
      // 删除成功后再次查看类别列表
      await testGetCategories();
    }
  }
  
  console.log('测试完成');
}

// 运行测试
runTests().catch(err => {
  console.error('测试过程中出现错误:', err);
});